﻿'    DotNetIRCD - An IRC Daemon written in VB.Net
'    Copyright (C) 2012 GeorgeBush
'
'    This program is free software: you can redistribute it and/or modify
'    it under the terms of the GNU General Public License as published by
'    the Free Software Foundation, either version 2 of the License, or
'    (at your option) any later version.
'
'    This program is distributed in the hope that it will be useful,
'    but WITHOUT ANY WARRANTY; without even the implied warranty of
'    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'    GNU General Public License for more details.
'
'    You should have received a copy of the GNU General Public License
'    along with this program. If not, see <http://www.gnu.org/licenses/>.

''' <summary>
''' 
''' </summary>
<HideModuleName()> _
Module UserModesModule

    ''' <summary>
    ''' 
    ''' </summary>
    Public Structure UserMode

        ''' <summary>
        ''' 
        ''' </summary>
        Public Mode As String

        ''' <summary>
        ''' 
        ''' </summary>
        Public Name As String

        ''' <summary>
        ''' 
        ''' </summary>
        Public Description As String

        ''' <summary>
        ''' 
        ''' </summary>
        ''' <param name="Mode"></param>
        ''' <param name="Name"></param>
        ''' <param name="Description"></param>
        Sub New(ByVal Mode As String, ByVal Name As String, ByVal Description As String)

            Me.Mode = Mode
            Me.Name = Name
            Me.Description = Description

        End Sub

    End Structure

    ''' <summary>
    ''' 
    ''' </summary>
    Public UserModes() As UserMode = _
        {New UserMode("o", "GLOBAL_OPER", "User is a Global Administrator"),
         New UserMode("O", "LOCAL_OPER", "User is a Local Administrator"),
         New UserMode("a", "SERVICES_ADMIN", "User is a Services Administrator"),
         New UserMode("A", "SERVER_ADMIN", "User is a Server Administrator"),
         New UserMode("N", "NETWORK_ADMIN", "User is a Network Administrator"),
         New UserMode("C", "CO_ADMIN", "User is a Co Administrator"),
         New UserMode("d", "DEAF", "User does not receive channel messages unless they are prefixed with a specific character"),
         New UserMode("g", "GLOBOPS", "User receives GLOBOPS messages"),
         New UserMode("h", "HELPER", "User is a HELPER"),
         New UserMode("i", "INVISIBLE", "User is invisible (Not shown in /WHO /WHOIS)"),
         New UserMode("p", "HIDE_CHANS", "Hides the Users channels in /WHO /WHOIS"),
         New UserMode("q", "KIX", "Only U:liners/arbiters can kick this user (Services/Network Administrators)"),
         New UserMode("r", "REGISTERED", "Nickname is registered with a network nickname service"),
         New UserMode("s", "SERVER_NOTICES", "User receives server notices"),
         New UserMode("t", "VHOST", "User is using a /VHOST"),
         New UserMode("v", "VICTIM", "User receives messages regarding infected DCC rejections"),
         New UserMode("w", "WALLOPS", "User receives WALLOPS messages"),
         New UserMode("x", "HOST_HIDING", "Hide the host of the user"),
         New UserMode("y", "STATS_LINKS", "User receives notices about stats/links"),
         New UserMode("z", "SECURE_CONN", "User is securely connected (SSL/TLS)"),
         New UserMode("B", "BOT", "User is a bot"),
         New UserMode("G", "STRIP_BAD_WORDS", "Messages user receives are stripped of profanity"),
         New UserMode("H", "HIDE_OPER", "Hides operator status from users"),
         New UserMode("R", "NO_NON_REGISTERED", "User wants to block messages from non-registered nicknames"),
         New UserMode("S", "SERVICE", "User is a service, and is protected"),
         New UserMode("T", "BLOCK_CTCP", "Blocks all CTCP requests from other users"),
         New UserMode("V", "WEBTV", "User is using a WebTV client"),
         New UserMode("W", "WHOIS_PARANOIA", "User is receives a notice when somebody uses a /WHo or /WHOIS command on them")}

    ''' <summary>
    ''' 
    ''' </summary>
    Public UserModeList As String = "oOaANCdghipqrstvwxyzBGHRSTVW"

End Module
